package user

import (
	"github.com/gin-gonic/gin"
	"net/http"
	"ppa/model"
)

// GetUserInfo
// @Summary 获取用户信息
// @Tags 用户中心
// @Produce  json
// @Description 根据钱包地址获取用户详细信息
// @Param wallet_address query string true "wallet_address"
// @Success 200   {object} model.User
// @Router /user/info [get]
func GetUserInfo(c *gin.Context) {
	var user model.User
	if err := c.ShouldBind(&user);err != nil{
		c.JSON(http.StatusBadRequest,gin.H{"message":err.Error()})
		return
	}
	resData,err:= user.GetUserInfo()
	if err != nil {
		c.JSON(http.StatusLengthRequired,gin.H{"message":err.Error()})
		return
	}
	c.JSON(http.StatusOK,gin.H{"data":resData})
	return
}

// SetUserInfo
// @Summary 新增用户
// @Tags 用户中心
// @Produce  json
// @Description 插入一个钱包地址不存在的用户(存在了会报错)
// @Param wallet_address query string true "wallet_address"
// @Param user_name query string false "user_name"
// @Param user_avatar query string false "user_avatar"
// @Router /user/info [post]
func SetUserInfo(c *gin.Context) {
	var user model.User
	if err := c.ShouldBind(&user);err != nil{
		c.JSON(http.StatusBadRequest,gin.H{"message":err.Error()})
		return
	}
	_, err := user.SetUserInfo()
	if err != nil {
		c.JSON(http.StatusLengthRequired,gin.H{"message":err.Error()})
		return
	}
	c.JSON(http.StatusOK,gin.H{"message":"插入成功"})
	return
}

// SetUserByWalletAddress
// @Summary 修改用户信息
// @Tags 用户中心
// @Produce  json
// @Description 请输入正确的钱包地址进行修改
// @Param wallet_address query string true "wallet_address"
// @Param user_name query string false "user_name"
// @Param user_avatar query string false "user_avatar"
// @Router /user/info [put]
func SetUserByWalletAddress(c *gin.Context) {
	var user model.User
	if err := c.ShouldBind(&user);err != nil{
		c.JSON(http.StatusBadRequest,gin.H{"message":err.Error()})
		return
	}
	_, err := user.SetUserInfoByWalletAddress()
	if err != nil {
		c.JSON(http.StatusLengthRequired,gin.H{"message":err.Error()})
		return
	}
	c.JSON(http.StatusOK,gin.H{"message":"修改成功"})
	return
}